home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / dnalib59.arj / SAVEAS.BAS < prev    next >
BASIC Source File  |  1994-02-13  |  21KB  |  599 lines

  1. DECLARE SUB LineEdit(Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,EditKey%,Attr%)
  2. DECLARE SUB Popwind(Title$,Toprow%,Leftcolumn%,Bottomrow%,Rightcolumn%,Attr%,Shadow%,Border%)
  3. DECLARE SUB Dialog(Choices$(),Title$,Mouse%,Cntr%,TopRow%,LeftColumn%,TxtColor%,Attr%,Shadow%,Border%)
  4. DECLARE SUB RestoreScreen(ScreenID$,TopRow%,LeftColumn%)
  5. DECLARE SUB SaveScreen(ScreenID$,TopRow%,LeftColumn%,BottomRow%,RightColumn%,Shadow%)
  6. DECLARE SUB CalcByte(Attr%,LowByte%,HiByte%)
  7. DECLARE SUB Clicked(Rgt%,Lft%,Row%,Col%)
  8. DECLARE SUB HideCursor()
  9. DECLARE SUB ShowCursor()
  10. DECLARE FUNCTION LeftButtonReleased%()
  11.  
  12. SUB WriteToBox(ReturnedFile$,DefaultName$,Mouse%,Attr%,BarAttr%,ButtonAttr%,Shadow%,Border%)PUBLIC
  13.  
  14. DIM Directory$(1:100)
  15. DIM Message$(2)
  16. DirPointer% = 0
  17. ON LOCAL ERROR GOTO ErrorHandle
  18.  
  19. Allow$ = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_^$~!{}()@'`*.\:"
  20. FileMask$ = "*.*"
  21.  
  22. CalcByte Attr%,FGround%,BGround%
  23. CalcByte ButtonAttr%,BtFG%,BtBG%
  24. CalcByte BarAttr%,BarFG%,BarBG%
  25.  
  26. IF Mouse% THEN HideCursor
  27.  
  28. SaveScreen DirScreen$,4,9,17,71,1
  29.  
  30. Popwind Title$,4,9,17,71,Attr%,Shadow%,Border%
  31. Popwind Title$,8,11,13,69,Attr%,0,1
  32.  
  33. IF Mouse% THEN
  34.   COLOR FGround%,BGround%
  35.   LOCATE 4,11,0
  36.   PRINT CHR$(91,254,93);
  37. END IF
  38.  
  39. Row% = 15:Col% = 13
  40.  
  41. COLOR BtFG%,BGround%
  42. LOCATE 6,11,0
  43. PRINT "File Name:";
  44.  
  45. COLOR BtFG%,BtBG%
  46. LOCATE Row%, Col%,0
  47. PRINT " Enter ";
  48. COLOR 0,BGround%
  49. LOCATE Row%, Col% + 7,0
  50. PRINT "▄";
  51. COLOR 0,BGround%
  52. LOCATE Row% + 1,Col% + 1,0
  53. PRINT "▀▀▀▀▀▀▀";
  54.  
  55. COLOR BtFG%,BtBG%
  56. LOCATE Row%,Col% + 11,0
  57. PRINT " Esc ";
  58. COLOR 0,BGround%
  59. LOCATE Row%,Col% + 16,0
  60. PRINT "▄";
  61. COLOR 0,BGround%
  62. LOCATE Row% + 1,Col% + 12,0
  63. PRINT "▀▀▀▀▀"
  64.  
  65. IF RIGHT$(CURDIR$,1) = "\" THEN  'make sure there is a back slash
  66.   Current$ = CURDIR$ + "*.*"
  67. ELSE
  68.   Current$ = CURDIR$ + CHR$(92) + "*.*"
  69. END IF
  70.  
  71. DO
  72.  
  73. IF DirCount% THEN          'empty out the array
  74.   FOR i% = 1 TO DirCount%
  75.     Directory$(i%) = ""
  76.   NEXT i%
  77. END IF
  78.  
  79. FOR i% = 1 TO LEN(Current$)      'get the path, need this when testing ATTRIB
  80.   Test$ = RIGHT$(Current$,i%)
  81.   IF LEFT$(Test$,1) = CHR$(92) THEN
  82.     Path$ = LEFT$(Current$,LEN(Current$) - (i% - 1))
  83.     EXIT FOR
  84.   END IF
  85. NEXT i%
  86.  
  87. i% = 1
  88.  
  89.  DirName$ = DIR$(Path$ + "*.*",16)   'get directorys and put them in an array
  90.  x% = ATTRIB(Path$ + DirName$)
  91.  IF x% = 16 THEN Directory$(i%) = DirName$
  92.  
  93.    DO
  94.      DirName$ = DIR$
  95.      IF LEN(DirName$) THEN
  96.        x% = ATTRIB(Path$ + DirName$)
  97.        IF x% = 16 THEN
  98.          INCR i%
  99.          Directory$(i%) = DirName$
  100.        END IF
  101.      END IF
  102.    LOOP WHILE LEN(DirName$)
  103.  
  104. IF LEN(Path$) > 3 THEN
  105.   IF LEN(Directory$(i%)) THEN
  106.     INCR i%
  107.     Directory$(i%) = ".."
  108.   ELSE
  109.     Directory$(i%) = ".."
  110.   END IF
  111. END IF
  112.  
  113. DirCount% = i%      'keep a count of directorys
  114.  
  115. ARRAY SORT Directory$(1) FOR DirCount%     'sort them A - Z
  116.  
  117. PasteIn$ = ""
  118. DirStart% = 1:DirFinish% = 16 'initialize these
  119.  
  120. DO
  121.   IF Mouse% THEN HideCursor
  122.  
  123.   GOSUB PrintDirs
  124.  
  125.   Current$ = Path$ + PasteIn$ + DefaultName$     'display the full path and file name
  126.   IF LEN(Current$) < 48 THEN       'of the selected item
  127.     Add% = 48 - LEN(Current$)
  128.     Current$ = Current$ + SPACE$(Add%)
  129.   END IF
  130.  
  131.   Current$ = UCASE$(Current$)    'force upper case
  132.  
  133.   Editkey% = 0  'this causes LineEdit to print and exit
  134.  
  135.   LineEdit Allow$,Current$,Mouse%,MouseRow%,MouseCol%,176,6,22,EditKey%,BarAttr%
  136.  
  137.   Kurrent$ = Current$
  138.   Kurrent$ = RTRIM$(Kurrent$)
  139.   FOR i% = 1 TO LEN(Kurrent$)      'get the path and file name
  140.     Test$ = RIGHT$(Kurrent$,i%)
  141.     IF LEFT$(Test$,1) = CHR$(92) THEN
  142.       FindPath$ = LEFT$(Kurrent$,LEN(Kurrent$) - (i% - 1))
  143.       EXIT FOR
  144.     END IF
  145.   NEXT i%
  146.   DefaultName$ = LTRIM$(Kurrent$,FindPath$)
  147.  
  148.   SELECT CASE Editkey%
  149.          CASE -255  'exit was with mouse
  150.            SELECT CASE MouseRow%
  151.                   CASE 4  'cancel box
  152.                     IF MouseCol% = 12 THEN
  153.                       Editkey% = 27
  154.                       ReturnedFile$ = ""
  155.                       EXIT,EXIT
  156.                     END IF
  157.                   CASE 6  'line edit
  158.                     IF MouseCol% > 21 AND MouseCol% < 70 THEN
  159.                       Editkey% = 13
  160.                       ReturnedFile$ = UCASE$(RTRIM$(Current$))
  161.                       EXIT,EXIT
  162.                     END IF
  163.                   CASE 9 TO 12  'Dirs display
  164.                     SELECT CASE MouseCol%
  165.                            CASE 14 TO 24
  166.                              IF DirStart% + MouseRow% - 9 <= DirCount% THEN
  167.                                DirPointer% = DirStart% + MouseRow% - 9
  168.                              ELSE
  169.                                DirPointer% = DirCount%
  170.                              END IF
  171.                              GOTO MouseJumpToRepaint
  172.                            CASE 28 TO 38
  173.                              IF DirStart% + 4 + MouseRow% - 9 <= DirCount% THEN
  174.                                DirPointer% = DirStart% + 4 + MouseRow% - 9
  175.                              ELSE
  176.                                DirPointer% = DirCount%
  177.                              END IF
  178.                              GOTO MouseJumpToRepaint
  179.                            CASE 42 TO 52
  180.                              IF DirStart% + 8 + MouseRow% - 9 <= DirCount% THEN
  181.                                DirPointer% = DirStart% + 8 + MouseRow% - 9
  182.                              ELSE
  183.                                DirPointer% = DirCount%
  184.                              END IF
  185.                              GOTO MouseJumpToRepaint
  186.                            CASE 56 TO 66
  187.                              IF DirStart% + 12 + MouseRow% - 9 <= DirCount% THEN
  188.                                DirPointer% = DirStart% + 12 + MouseRow% - 9
  189.                              ELSE
  190.                                DirPointer% = DirCount%
  191.                              END IF
  192.                              GOTO MouseJumpToRepaint
  193.                     END SELECT
  194.                   CASE 13  'scroll bar
  195.                     IF MouseCol% > 51 AND MouseCol% < 68 THEN
  196.                       GOTO MouseJumpToDirs
  197.                     END IF
  198.                   CASE 15  'Save and Esc buttons
  199.                     SELECT CASE MouseCol%
  200.                            CASE 13 TO 19  'Save
  201.                              ReturnedFile$ = UCASE$(RTRIM$(Current$))
  202.                              Editkey% = 13
  203.                              EXIT,EXIT
  204.                            CASE 24 TO 28  'Esc
  205.                              ReturnedFile$ = ""
  206.                              Editkey% = 27
  207.                              EXIT,EXIT
  208.                     END SELECT
  209.                   CASE ELSE 'return to loop
  210.            END SELECT
  211.          CASE 9
  212.          DO
  213.            MouseJumpToDirs:
  214.            IF OldDirPointer% THEN
  215.              DirPointer% = OldDirPointer%
  216.            ELSE
  217.              DirPointer% = 1
  218.            END IF
  219.          DO
  220.            MouseJumpToRepaint:
  221.            IF Mouse% THEN HideCursor
  222.            GOSUB PrintDirs
  223.            Editkey% = 255  'fall through LineEdit
  224.            LineEdit Allow$,Current$,Mouse%,MouseRow%,MouseCol%,176,6,22,EditKey%,Attr%
  225.  
  226.            WHILE NOT INSTAT
  227.              IF Mouse% THEN
  228.                ShowCursor
  229.                Rgt% = 0:Lft% = 0:MRow% = 0:MCol% = 0
  230.                Clicked Rgt%,Lft%,MRow%,MCol%
  231.                SELECT CASE MRow%
  232.                      CASE 4  'cancel box
  233.                        IF MCol% = 12 THEN
  234.                          IF LeftButtonReleased% THEN
  235.                            ReturnedFile$ = ""
  236.                            Editkey% = 27
  237.                            GOTO MouseJumpToExit
  238.                          END IF
  239.                        END IF
  240.                      CASE 6  'line edit
  241.                        IF MCol% > 21 AND MCol% < 70 THEN
  242.                          IF LeftButtonReleased% THEN
  243.                            Chose% = 9
  244.                            GOTO MouseJumpToKeyBoard
  245.                          END IF
  246.                        END IF
  247.                      CASE 9 TO 12  'Dirs display
  248.                        SELECT CASE MCol%
  249.                               CASE 14 TO 24
  250.                                 IF Lft% THEN
  251.                                   IF DirPointer% = DirStart% + MRow% - 9 THEN
  252.                                     IF LeftButtonReleased% THEN
  253.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  254.                                     END IF
  255.                                   ELSE
  256.                                     IF DirStart% + MRow% - 9 <= DirCount% THEN
  257.                                       DirPointer% = DirStart% + MRow% - 9
  258.                                       GOTO MouseJumpToRepaint
  259.                                     END IF
  260.                                   END IF
  261.                                 END IF
  262.                               CASE 28 TO 38
  263.                                 IF Lft% THEN
  264.                                   IF DirPointer% = DirStart% + 4 + MRow% - 9 THEN
  265.                                     IF LeftButtonReleased% THEN
  266.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  267.                                     END IF
  268.                                   ELSE
  269.                                     IF DirStart% + 4 + MRow% - 9 <= DirCount% THEN
  270.                                       DirPointer% = DirStart% + 4 + MRow% - 9
  271.                                       GOTO MouseJumpToRepaint
  272.                                     END IF
  273.                                   END IF
  274.                                 END IF
  275.                               CASE 42 TO 52
  276.                                 IF Lft% THEN
  277.                                   IF DirPointer% = DirStart% + 8 + MRow% - 9 THEN
  278.                                     IF LeftButtonReleased% THEN
  279.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  280.                                     END IF
  281.                                   ELSE
  282.                                     IF DirStart% + 8 + MRow% - 9 <= DirCount% THEN
  283.                                       DirPointer% = DirStart% + 8 + MRow% - 9
  284.                                       GOTO MouseJumpToRepaint
  285.                                     END IF
  286.                                   END IF
  287.                                 END IF
  288.                               CASE 56 TO 66
  289.                                 IF Lft% THEN
  290.                                   IF DirPointer% = DirStart% + 12 + MRow% - 9 THEN
  291.                                     IF LeftButtonReleased% THEN
  292.                                       Chose% = 13:GOTO MouseJumpToKeyBoard
  293.                                     END IF
  294.                                   ELSE
  295.                                     IF DirStart% + 12 + MRow% - 9 <= DirCount% THEN
  296.                                       DirPointer% = DirStart% + 12 + MRow% - 9
  297.                                       GOTO MouseJumpToRepaint
  298.                                     END IF
  299.                                   END IF
  300.                                 END IF
  301.                        END SELECT
  302.                      CASE 13  'scroll bar
  303.                        SELECT CASE MCol%
  304.                               CASE 51 TO 52
  305.                                 IF DirCount% < 17 THEN
  306.                                   IF LeftButtonReleased% THEN
  307.                                     Chose% = -72:GOTO MouseJumpToKeyBoard
  308.                                   END IF
  309.                                 ELSE
  310.                                   IF LeftButtonReleased% THEN
  311.                                     Chose% = -75:GOTO MouseJumpToKeyBoard
  312.                                   END IF
  313.                                 END IF
  314.                               CASE 67 TO 68
  315.                                 IF DirCount% < 17 THEN
  316.                                   IF LeftButtonReleased% THEN
  317.                                     Chose% = -80:GOTO MouseJumpToKeyBoard
  318.                                   END IF
  319.                                 ELSE
  320.                                   IF LeftButtonReleased% THEN
  321.                                     Chose% = -77:GOTO MouseJumpToKeyBoard
  322.                                   END IF
  323.                                 END IF
  324.                        END SELECT
  325.                      CASE 15  'Save and Esc buttons
  326.                        SELECT CASE MCol%
  327.                               CASE 13 TO 19  'Save
  328.                                 IF LeftButtonReleased% THEN
  329.                                   ReturnedFile$ = UCASE$(RTRIM$(Current$))
  330.                                   Editkey% = 13
  331.                                   GOTO MouseJumpToExit
  332.                                 END IF
  333.                               CASE 24 TO 28  'Esc
  334.                                 IF LeftButtonReleased% THEN
  335.                                   ReturnedFile$ = ""
  336.                                   Editkey% = 27
  337.                                   GOTO MouseJumpToExit
  338.                                 END IF
  339.                        END SELECT
  340.                END SELECT
  341.              END IF
  342.            WEND
  343.            Ky$ = INKEY$
  344.  
  345.            IF LEN(Ky$) = 1 THEN
  346.              Chose% = ASC(Ky$)
  347.            ELSE
  348.              Chose% = -ASC(RIGHT$(Ky$,1))
  349.            END IF
  350.  
  351.            MouseJumpToKeyBoard:
  352.  
  353.            SELECT CASE Chose%
  354.  
  355.                   CASE -71 ' home
  356.                     IF DirPointer% < 16 THEN
  357.                       DirPointer% = 1
  358.                     ELSE
  359.                       DirPointer% = 1
  360.                       DirStart% = 1
  361.                       DirFinish% = 16
  362.                     END IF
  363.                   CASE -72 ' up arrow
  364.                     IF DirPointer% > 1 THEN
  365.                       DECR DirPointer%
  366.                       IF DirPointer% < DirStart% THEN
  367.                         DECR DirStart%:DECR DirFinish%
  368.                       END IF
  369.                     END IF
  370.                   CASE -75 ' left arrow
  371.                     IF DirPointer% - 4 > 0 THEN
  372.                       DECR DirPointer%,4
  373.                       IF DirPointer% < DirStart% THEN
  374.                         IF DirStart% - 4 > 0 THEN
  375.                           DECR DirStart%,4:DECR DirFinish%,4
  376.                         ELSE
  377.                           DirStart% = 1:DirFinish% = 16
  378.                         END IF
  379.                       END IF
  380.                     ELSE
  381.                       IF DirCount% > 16 THEN
  382.                         DirStart% = 1:DirFinish% = 16
  383.                       END IF
  384.                     END IF
  385.                   CASE -77 ' right arrow
  386.                     IF DirPointer% + 4 <= DirCount% THEN
  387.                       INCR DirPointer%,4
  388.                       IF DirPointer% > DirFinish% THEN
  389.                         IF DirFinish% + 4 < DirCount% THEN
  390.                           INCR DirStart%,4:INCR DirFinish%,4
  391.                         ELSE
  392.                           DirFinish% = DirCount%
  393.                           DirStart% = DirFinish% - 15
  394.                         END IF
  395.                       END IF
  396.                     ELSE
  397.                       IF DirCount% > 16 THEN
  398.                         DirFinish% = DirCount%
  399.                         DirStart% = DirFinish% - 15
  400.                       END IF
  401.                     END IF
  402.                   CASE -79 ' end key
  403.                     IF DirCount% < 16 THEN
  404.                       DirPointer% = DirCount%
  405.                     ELSE
  406.                       DirPointer% = DirCount%
  407.                       DirStart% = DirCount% - 15
  408.                       DirFinish% = DirCount%
  409.                     END IF
  410.                   CASE -80 ' down arrow
  411.                     IF DirPointer% < DirCount% THEN
  412.                       INCR DirPointer%
  413.                       IF DirPointer% > DirFinish% THEN
  414.                         INCR DirStart%:INCR DirFinish%
  415.                       END IF
  416.                     END IF
  417.                   CASE 9   ' tab key
  418.                     OldDirPointer% = DirPointer%
  419.                     DirPointer% = 0
  420.                     EXIT,EXIT,EXIT
  421.                   CASE 13  ' enter
  422.                     IF Directory$(DirPointer%) = ".." THEN
  423.                       Path$ = RTRIM$(Path$,CHR$(92))
  424.                       FOR i% = 1 TO LEN(Path$)
  425.                         Test$ = RIGHT$(Path$,i%)
  426.                         IF LEFT$(Test$,1) = CHR$(92) THEN
  427.                           Current$ = LEFT$(Path$,LEN(Path$) - (i% - 1))
  428.                           OldDirPointer% = 0:DirPointer% = 0
  429.                           EXIT,EXIT,EXIT,EXIT
  430.                         END IF
  431.                       NEXT i%
  432.                     ELSE
  433.                       Current$ = Path$ + PasteIn$
  434.                       OldDirPointer% = 0:DirPointer% = 0
  435.                       EXIT,EXIT,EXIT
  436.                     END IF
  437.                   CASE 27  ' Esc
  438.                     Editkey% = 27
  439.                     EXIT,EXIT,EXIT,EXIT
  440.                   CASE ELSE
  441.                     BEEP
  442.             END SELECT
  443.          LOOP
  444.          LOOP
  445.          CASE 13
  446.            ReturnedFile$ = UCASE$(RTRIM$(Current$))
  447.            EXIT,EXIT
  448.          CASE 27
  449.            ReturnedFile$ = ""
  450.            EXIT,EXIT
  451.   END SELECT
  452.  
  453. LOOP
  454. LOOP
  455.  
  456. MouseJumpToExit:
  457.  
  458. Row% = 15:Col% = 13
  459.  
  460. SELECT CASE Editkey%
  461.  
  462.         CASE 13 'Ok
  463.           IF Mouse% THEN HideCursor
  464.           COLOR FGround%,BGround%
  465.           LOCATE Row%,Col%,0
  466.           PRINT " ";
  467.           LOCATE Row% + 1,Col% + 1,0
  468.           PRINT "       ";
  469.           COLOR BtFG%,BtBG%
  470.           LOCATE Row%,Col% + 1,0
  471.           PRINT " Enter "
  472.  
  473.         CASE 27 'Esc
  474.           IF Mouse% THEN HideCursor
  475.           COLOR FGround%,BGround%
  476.           LOCATE Row%,Col% + 11,0
  477.           PRINT " ";
  478.           LOCATE Row% + 1,Col% + 12,0
  479.           PRINT "      ";
  480.           COLOR BtFG%,BtBG%
  481.           LOCATE Row%,Col% + 12,0
  482.           PRINT " Esc "
  483.  
  484. END SELECT
  485.  
  486. IF Mouse% THEN ShowCursor
  487. DELAY .5
  488. IF Mouse% THEN HideCursor
  489. RestoreScreen DirScreen$,4,9
  490.  
  491. EXIT SUB
  492. '----------------------------------------------------------------------------
  493. PrintDirs:
  494. Row% = 9
  495. Col% = 14
  496.  
  497. FOR a% = DirStart% TO DirFinish%
  498.   IF a% = DirStart% + 4 OR a% = DirStart% + 8 OR a% = DirStart% + 12  THEN Row% = 9:INCR Col%,14
  499.     IF a% = DirPointer% THEN
  500.       COLOR BarFG%,BarBG%
  501.       LOCATE Row%,Col%,0
  502.       IF LEN(Directory$(a%)) THEN
  503.         z% = 92
  504.       ELSE
  505.         z% = 32
  506.       END IF
  507.       IF Directory$(a%) = ".." THEN
  508.         PasteIn$ = ""
  509.       ELSE
  510.         PasteIn$ = Directory$(a%) + CHR$(92)
  511.       END IF
  512.       PRINT SPACE$(1) + Directory$(a%) + CHR$(z%) + SPACE$(9 - LEN(Directory$(a%)));
  513.     ELSE
  514.       COLOR FGround%,BGround%
  515.       LOCATE Row%,Col%,0
  516.       IF LEN(Directory$(a%)) THEN
  517.         z% = 92
  518.       ELSE
  519.         z% = 32
  520.       END IF
  521.       PRINT SPACE$(1) + Directory$(a%) + CHR$(z%) + SPACE$(9 - LEN(Directory$(a%)));
  522.     END IF
  523.     INCR Row%
  524.   NEXT a%
  525.  
  526. DirScrollBar% = DirCount% \ 14
  527. IF DirScrollBar% < 1 THEN DirScrollBar% = 1
  528. Bar% = 0
  529. Col% = 52
  530.  
  531. IF DirPointer% THEN
  532.   ScrollDirPointer% = DirPointer%
  533. ELSEIF OldDirPointer% THEN
  534.   ScrollDirPointer% = OldDirPointer%
  535. ELSE
  536.   ScrollDirPointer% = 1
  537. END IF
  538.  
  539. COLOR FGround%,BGround%
  540. LOCATE 13,13,0
  541. PRINT "┤            ├";
  542. COLOR BtFG%,BGround%
  543. LOCATE 13,14,0
  544. PRINT ScrollDirPointer%; "of"; DirCount%;
  545.  
  546. FOR a% = DirStart% TO DirFinish%
  547.   COLOR FGround%,BGround%
  548.   LOCATE 13,Col%,0
  549.   IF a% = DirStart% THEN
  550.     PRINT CHR$(27);
  551.   ELSEIF a% = DirFinish% THEN
  552.     PRINT CHR$(26);
  553.   ELSE
  554.     IF Bar% =  0 THEN
  555.       c% = ScrollDirPointer%
  556.       FOR i% = 1 TO DirScrollBar%
  557.         b% = c% \ DirScrollBar%
  558.         IF a% = b% + DirStart% THEN
  559.           Bar% = 1
  560.           EXIT FOR
  561.         ELSE
  562.           INCR c%
  563.         END IF
  564.       NEXT i%
  565.       IF Bar%  THEN
  566.         PRINT CHR$(219);
  567.       ELSE
  568.         IF Bar% = 0 AND a% = DirFinish% - 1 THEN
  569.           PRINT CHR$(219);
  570.         ELSE
  571.           PRINT CHR$(176);
  572.         END IF
  573.       END IF
  574.     ELSE
  575.       PRINT CHR$(176);
  576.     END IF
  577.   END IF
  578.   INCR Col%
  579. NEXT a%
  580.  
  581. RETURN
  582. '----------------------------------------------------------------------------
  583. ErrorHandle:
  584.  
  585.   SELECT CASE ERR
  586.  
  587.     CASE 71
  588.       Message$(1) = "  Disk Drive not Ready  "
  589.     CASE 76
  590.       Message$(1) = "  Path or File not Found  "
  591.  
  592.   END SELECT
  593.  
  594.   Dialog Message$(),"Error",Mouse%,2,9,25,BarFG%,ButtonAttr%,Shadow%,Border%
  595.  
  596. RESUME NEXT
  597. '----------------------------------------------------------------------------
  598. END SUB
  599.